package com.pccw.hessian.support.client;

/**
 * 任务执行监听器.
 * 该监听器只应该在UI线程中创建
 * @param <R>	任务成功执行返回结果类型
 * @param <E>	任务执行抛出的异常类型
 */
public interface HessianAsynTask<R,E extends Throwable> {
	
	R doInBackground() throws E;

	/**
	 * 任务执行过程中出现异常将调用此方法
	 * [执行在UI线程]
	 */
	void onExceptionOccured(E e);
	/**
	 * 任务执行成功将调用该方法,Result是任务结果
	 */
	void onExecuteSuccess(R result);
	
	/**
	 * 任务成功执行［或者发生异常］后都将执行该方法
	 * @param context
	 * @param uriKey
	 */
	void onFinally(R result);
}